import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * 尼科彻斯定理，即：任何一个整数m的立方都可以写成m个连续奇数之和
 */
public class NicochesTheorem {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int num = scanner.nextInt();
            int[] arr = new int[num];
            List<Integer> list = new ArrayList<>();
            if (num%2==0) {
                // 偶数
                int middle1 = arr[num/2] = num * num+1;
                int middle2 = arr[num/2-1] = num * num -1;
                list.add(middle1);
                list.add(middle2);
                for (int i=num/2-1; i>0; i--) {
                    middle2 = middle2 - 2;
                    list.add(middle2);
                }
                for (int i=num/2; i<num-1; i++) {
                    middle1 = middle1+2;
                    list.add(middle1);
                }
            } else {
                // 奇数
                int middle1 = arr[num/2] = num*num;
                int middle2 = middle1;
                list.add(middle1);
                for (int i=num/2; i>0; i--) {
                    middle2 = middle2 - 2;
                    list.add(middle2);
                }
                for (int i=num/2+1; i<num; i++) {
                    middle1 = middle1+2;
                    list.add(middle1);
                }
            }
            Collections.sort(list);
            StringBuffer sb = new StringBuffer();
            for(Integer integer:list) {
                sb.append(integer).append("+");
            }
            sb.delete(sb.length() - 1, sb.length());
            System.out.println(sb.toString());
        }
    }
}
